package com.woniuxy.woniufp.sms.config;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

public class SmsTemplate {
    private SmsProperties properties ;
    public SmsTemplate() {
    }
    public SmsTemplate(SmsProperties properties){
        this.properties = properties;
    }

    /**
     * 调用阿里云平台发送短信
     */
    public void sendSms(String phoneNumbers,String code)  {
        // 超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");
        try {
            //初始化acsClient,暂不支持region化
            IClientProfile profile = DefaultProfile.getProfile(
                    "cn-hangzhou", properties.getAccessKey(), properties.getSecret());
            DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com");
            IAcsClient acsClient = new DefaultAcsClient(profile);
            //组装请求对象-具体描述见控制台-文档部分内容
            SendSmsRequest request = new SendSmsRequest();
            //必填:待发送手机号
            request.setPhoneNumbers(phoneNumbers);
            //必填:短信签名-可在短信控制台中找到
            request.setSignName(properties.getSignName());
            //必填:短信模板-可在短信控制台中找到
            request.setTemplateCode(properties.getTemplateCode());
            //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
            request.setTemplateParam("{\"code\":\""+code+"\"}");
            request.setOutId("yourOutId");
            acsClient.getAcsResponse(request);
        }catch (Exception e) {
            e.printStackTrace();
        }
    }
}
